.TH SELECT 2 "Jun 9, 2005"
.UC 4
.SH NAME
select, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \- synchronous I/O multiplexing
.SH SYNOPSIS
.nf
.ft B
#include <sys/select.h>

int select(int \fInfds\fP, fd_set *\fIreadfds\fP, fd_set *\fIwritefds\fP, fd_set *\fIerrorfds\fP, struct timeval *\fItimeout\fP)

void FD_CLR(int \fIfd\fP, fd_set *\fIfdset\fP)
int FD_ISSET(int \fIfd\fP, fd_set *\fIfdset\fP)
void FD_SET(int \fIfd\fP, fd_set *\fIfdset\fP)
void FD_ZERO(fd_set *\fIfdset\fP)
.ft R
.fi
.SH DESCRIPTION
.B Select
examines the file descriptors given in the sets 
.IR readfds ,
.IR writefds ,
and
.IR errorfds ,
up to and including file descriptor
.IR nfds -1
, for reading, writing, or exceptional conditions, respectively.
.B Select
currently supports regular files, pipes, named pipes,
inet, and tty file descriptors (including pty).

If the 
.I readfds 
argument is not a null pointer, it points to an object of type fd_set
that on input specifies the file descriptors to be checked for being
ready to read, and on output indicates which file descriptors are ready
to read.
.I Writefds 
and
.I errorfds
have an analogous meaning for file descriptors to be checked for being
ready to read, respectively have pending exceptional (error) conditions.

